﻿using System.Threading.Tasks;
using Abp.Dependency;
using EasyCaching.Core.Internal;
using Hicap.AuthorizationServer.Core.Models;

namespace Hicap.AuthorizationServer.Core.Managers
{
    public interface IUserManager : IManagerBase<User>, IEasyCaching,
        ITransientDependency
    {
        Task<User> ActiveUser(int id);

        Task<int> Register(User user);

        //Task NotificationUserActive(dynamic data);

        string GetPasswordSha256(string password);

        bool CheckUserPassword(string inputPassword, User user);

        Task UpdatePassword(string password, User dbEntity);

        Task<User> FindByUserCode(string usercode);

        Task ResetPasswordForAdmin(int id, string password);

        Task ResetPassword(int Id, string Password);

        Task<User> UpdateUser(User user);

        User GetUserById(int id);
    }
}